<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>ProMRDS Chapter 14 - Remotely Controlling a Mobile Robot</title>
<link href="../Styles/Standard.css" rel="stylesheet" type="text/css" />
</head>
<body>
<img src="Images/LegoTribot.JPG" alt="LEGO Tribot" align="right" style="margin:0; padding:0;" />
<table width="80%">
<tr>
<td width="200" align="left"><a href="http://www.ProMRDS.com"><img src="../Images/HomeIcon.gif" alt="ProMRDS Home Page" border="0" /></a></td>
<td width="*" align="center"><img src="Images/Chapter14.gif" alt="Chapter 14" /></td>
<td width=""></td>
</tr>
<tr>
<td colspan="3"><hr /></td>
</tr>
</table>

<div class="page">
<p class="heading"><span class="smallhead">Professional</span><br />&nbsp;&nbsp;&nbsp;Microsoft Robotics Developer Studio<br />
<a href="http://www.ProMRDS.com" onmouseout="Home.src='../Images/Home.gif';" onmouseover="Home.src='../Images/Home_f2.gif';"><img name="Home" src="../Images/Home.gif" width="150" height="25" border="0" alt="Home Page" /></a>
<a href="../ReadMe.htm" onmouseout="Contents.src='../Images/Contents.gif';" onmouseover="Contents.src='../Images/Contents_f2.gif';"><img name="Contents" src="../Images/Contents.gif" width="150" height="25" border="0" alt="Book Contents" /></a>
<a href="../Chapter13/ReadMe.htm" onmouseout="Prev.src='../Images/Previous.gif';" onmouseover="Prev.src='../Images/Previous_f2.gif';"><img name="Prev" src="../Images/Previous.gif" width="150" height="25" border="0" alt="Previous Chapter" /></a>
<a href="../Chapter15/ReadMe.htm" onmouseout="Next.src='../Images/Next.gif';" onmouseover="Next.src='../Images/Next_f2.gif';"><img name="Next" src="../Images/Next.gif" width="150" height="25" border="0" alt="Next Chapter" /></a><br />
</p>

<h1>Chapter 14 - Remotely Controlling a Mobile Robot</h1>

<h2>Summary</h2>
<p>
Remotely controlling a robot, usually via BlueTooth or WiFi, is one of
the most common scenarios for MRDS. This chapter discusses two robots
in detail: the Parallax Boe-Bot and the LEGO NXT Tribot.
</p>

<h2>Contents</h2>
<p>
The following applications are included in this Chapter:
</p>
<ul>
<li>Dance</li>
<li>Wander - Versions for the Boe-Bot and LEGO NXT V2</li>
<li>Updated <a href="Parallax_Boe-Bot.htm">Parallax Services</a> for the Boe-Bot</li>
</ul>
<p>
In addition, as an example of using multiple robots, there is a Synchronized Dance service.
You can see this in operation on <a href="http://www.youtube.com/watch?v=CkkvGeCeyRw">YouTube</a>
or download the <a href="../Downloads/SynchronizedDance.wmv">full video</a> (7.9MB WMV file).
</p>

<p>
The Dance service can be used with any Differential Drive robot.
It simply uses timers to try to drive the robot around a square.
How closely the pattern resembles a square depends on the timing
and the quality of the robot's motors.
</p>
<p>
The Wander behavior allows the robot to wander around without
bumping into obstacles. Because it relies on sensors that are
specific to particular robots, there are separate services
for the Boe-Bot and the LEGO NXT. This can be generalized, but
these services also play tones and flash LEDs which do not have
generic contracts in the standard set of MRDS contracts. (See
Chapter 17 for more on the Generic Brick contract).
</p>

<p>
The Parallax code for the Boe-Bot, and the onboard firmware,
were updated during the writing of the book to add new
features and fix some small bugs. These udpated services
are provided with the book code.
</p>

<h2>Legal Stuff</h2>
<p>
This code is available free of charge for non-commercial use.
Please see the licence agreement.
</p>
<p>
The Parallax code was modified with the permission of
<a href="http://www.parallax.com">Parallax</a>.
</p>

</div>

<hr />
<div class="footer">
Page maintained by:
<a href="m&#97;&#105;&#108;t&#111;:webmaster&#64;promrds&#46;com">webmaster&#64;promrds.com</a><br />
Last Updated: Mar-2008
</div>

</body>
</html>
